import axios from 'axios';
import {
	checkAuth
} from './auth';
// import { ElMessage } from 'element-plus'; // 若用UI库，可用于提示错误（非必需）
// 1. 创建axios实例，配置基础项
const service = axios.create({
	baseURL: 'https://puhuicaizhi.com', // 从环境变量取基础地址（推荐）
	timeout: 5000, // 超时时间
	headers: {
		'Content-Type': 'application/json;charset=utf-8' // 默认请求头
	}
});

// 2. 请求拦截器：添加token等公共参数
service.interceptors.request.use(
	(config) => {
		// 示例：从本地存储获取token，添加到请求头
		const token = uni.getStorageSync('wxwork_token');
		if (token) {
			config.headers.Authorization = `Bearer ${token}`;
		} else {
			const pages = getCurrentPages()
			console.log('路由地址', pages);
			const currentRoute = pages[0].route;
			uni.setStorageSync('wxwork_redirect', currentRoute)
			checkAuth(); //重新获取token
		}
		return config;
	},
	(error) => {
		// 请求出错（如参数错误）
		return Promise.reject(error);
	}
);

// 3. 响应拦截器：统一处理响应/错误
service.interceptors.response.use(
	(response) => {
		// 只返回响应体中的data（根据后端格式调整）
		const res = response.data;


		if (res.code == 200) {
			return Promise.resolve(res)
		} else if (res.code == 401) {
			// return Promise.reject(res); 
			const encodedTarget = encodeURIComponent('/pages/index/callBack');
			const authUrl =
				`https://puhuicaizhi.com/wx/yingyong/login?wantUrl=${encodedTarget}`;
			console.log('authUrl',authUrl);
			window.location.href = authUrl
			
			
		} else {
			return Promise.reject(res);
		}
		
	},
	(error) => {
		// 网络错误/服务器错误（如404、500）
		// ElMessage.error(error.message || '网络异常');
		return Promise.reject(error);
	}
);

// 4. 导出封装后的请求方法
export default service;